﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Collections;
using BEG.Model;
using BEG.Model.Classifiers;
using BEG.Model.Projections;
using BEG.Core;
using BEG.Core.Interface;
using GalaSoft.MvvmLight.Command;
using System.Windows.Input;
using System.Xml;
using System.IO;
using BEG.Model.Attribute;

namespace WebReportGeneratorVer2
{
    /// <summary>
    /// Методы для работы с классификаторами
    /// </summary>
    public class ClassifierUtils
    {
        /// <summary>
        /// Возвращает соединенный ссылкой элемент
        /// </summary>
        /// <param name="currentItem">Элемент</param>
        /// <param name="link">Ссылка</param>
        /// <returns>Связанный элемент</returns>
        public static ClassifierItem getConnected(ClassifierItem currentItem, Link link)
        {
            if (link.Left.Equals(currentItem))
            {
                return link.Right;
            }
            if (link.Right.Equals(currentItem))
            {
                return link.Left;
            }
            return null;
        }

        /// <summary>
        /// Возвращает соединенный классификатор
        /// </summary>
        /// <param name="current">Классификатор</param>
        /// <param name="projection">Проекция</param>
        /// <returns>соединеннный классификатор</returns>
        public static Classifier getConnected(Classifier current, Projection projection)
        {
            if (projection.LeftRef.Classifier.Equals(current))
            {
                return projection.RightRef.Classifier;
            }
            if (projection.RightRef.Classifier.Equals(current))
            {
                return projection.LeftRef.Classifier;
            }
            return null;
        }
    }
}